package 传智播客_黑马.java高级.多线程;
/*
并发和并行
    并发:指两个或者读个事件在同一个时间段内发生
    并行:指两个或者多个事件在同一时刻发生

线程和进程
    进程:指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,
        一个应用程序可以同时运行多个进程,进程也是程序的一次执行过程,是系统运行程序的基本单位:系统运行一个程序即是一个进程从创建,运行到消亡的过程
    线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程至少有一个线程.

线程调度:
   分时调度:
        所有此案城轮流使用cpu的使用权,平均分配每个线程占用cpu的时间
   抢占式调度
        优先让优先级高的线程使用cpu,如果线程的优先级相同,那么会随机选择一个线程(线程随机性).

创建线程类:
    主线程:main 方法所在的线程


 */
public class 概念 {
    public static void main(String[] args) {

        //创建两个人,单线程程序,从上到下依次运行,缺陷是有一个异常,整个程序都会停止.
//        Person p1 = new Person("小强");
//        p1.run();
//
//        Person p2 = new Person("小艾");
//        p2.run();


        //多线程的两种实现方法
        UseThread useThread = new UseThread();

        useThread.start();

        UseRunnable useRunnable = new UseRunnable();
        Thread runnable = new Thread(useRunnable);
        runnable.start();

        for (int i = 1; i <= 20; i++) {
            System.out.println("main" + i);
        }

        //Thread的几个常用方法:设置名字,以及休眠


        /*
        两种方式的区别,
            通过Runnable接口粗行间多线程的好处
                1.避免了单继承的局限性,
                2.增强了程序的扩展性,降低了程序的耦合性(解耦)
                    把设置线程任务和开启新线程进行了分离
         */

    }
}
